Euler Problem 25

The Fibonacci sequence is defined by the recurrence relation:

$F_n = F_{n−1} + F_{n−2}$, where $F_1 = 1$ and $F_2 = 1$. Hence the first 12 terms will be:

$\begin{align*} F_1 &= 1\\ F_2 &= 1\\ F_3 &= 2\\ F_4 &= 3\\ F_5 &= 5\\ F_6 &= 8\\ F_7 &= 13\\ F_8 &= 21\\ F_9 &= 34\\ F_{10} &= 55\\ F_{11} &= 89\\ F_{12} &= 144 \end{align*}$

The 12th term, $F_{12}$, is the first term to contain three digits.

What is the first term in the Fibonacci sequence to contain 1000 digits?


In [1]:
from math import log, ceil
phi = (1 + 5**.5)/2
print(int(ceil((log(5)/2 + 999*log(10))/log(phi))))


4782

Explanation: The nth Fibonacci number is approximately $\phi^n / \sqrt5$ where $\phi = (1 + \sqrt5)/2$.

We solve $\phi^n / \sqrt5 = 10^{999}$

$\begin{align*} \phi^n &= \sqrt5 \cdot 10^{999} \\ n \log \phi &= \log(5)/2 + 999 \log(10) \\ n &= (\log(5)/2 + 999 \log(10))/\log(\phi) \\ n &\approx 4781.86 \end{align*}$